[重新理解C++] 從 function object 理解惰性編譯 您所在的位置:网站首页 c++ 中 [重新理解C++] 從 function object 理解惰性編譯

[重新理解C++] 從 function object 理解惰性編譯

2023-01-13 12:22| 来源: 网络整理| 查看: 265

前言

惰性編譯乃是 C++ 有別於絕大部分語言中最重要的特性, 這個特性使得 C++ 一定程度上以靜態編譯語言做到了一部分原本動態語言才能做到的事情, 同時還保一定程度的安全和效能。

隨後這個特性衍伸出了一種更獨特,名為 SFINAE 的機制 基於此機制,C++ 終於把 Concept 的技能樹點開......

本篇文章的先備知識需求:

function pointer 相關應用 基礎 STL 基本 template 使用 函數型別的困境

關注以下幾種應用情境:

callback #include #include int cmpfunc (const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int main() { int values[] = { 6, 4, 2, 1, 3, 5, 7}; const int n = sizeof(values) / sizeof(int); printf("%d\n", n); for(int i = 0 ; i < n; i++ ) { printf("%d ", values[i]); } printf("\n"); qsort(values, n, sizeof(int), cmpfunc); for(int i = 0 ; i < n; i++ ) { printf("%d ", values[i]); } return 0; } stateful function #include int auto_inc() { static int i = 0; return i++; } int main() { std::printf("%d\n", auto_inc()); std::printf("%d\n", auto_inc()); std::printf("%d\n", auto_inc()); return 0; } function table #include #include void slot0(int& n) { std::cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有